\chapter{R\'ealisation et \'evaluation de PosNet}
%\minitoc
%\ochap{}{}

Les pr\'ec\'edents chapitres ayant fourni une sp\'ecification compl\`ete de notre solution d'index distribu\'e PosNet, le pr\'esent chapitre porte sur son \'evaluation 
exp\'erimentale, \`a travers une impl\'ementation distribu\'ee et concurrente en Python. 
L'impl\'ementation r\'ealis\'ee couvre la structure de donn\'ees de graphe s\'emantique, les protocoles pair-\`a-pair du plan de contr\^ole et les protocoles pair-\`a-pair 
du plan de requ\^etes, pour les requ\^etes de type exacte et par intervalles. Les tests ont \'et\'e effectu\'es sur un cluster de vingt cinq noeuds, ce qui nous a permis de 
d\'eployer jusqu'\`a ??? pairs et d'indexer jusque ??? donn\'ees de ??? dimensions. 

Les principales m\'etriques principales sont les suivantes : ???. Certains sont typiques des overlays P2P, tels que : ???. D'autres sont sp\'ecifiques \`a PosNet car 
induits par le mod\`eles d'indexation et de localisation : ???.  

\subsection{Les m\'etriques quantitatives de performances}

Parmi les m\'etriques de performance, nous distinguons entre les co\^uts de recherche, 
c'est-\`a-dire les co\^uts directement associ\'es \`a l'ex\'ecution des requ\^etes de recherche, et les co\^uts de maintenance, li\'es \`a gestion (dynamique) des ressources
(donn\'ees et machines). 
Les m\'etriques d'\'evaluations commun\'ement rencontr\'ees dans les solutions d'index qui nous int\'eressent, sont fonction des
des variables suivantes : type de requ\^ete, taille du syst\`eme (nombre de machines) et nombre
 d'attributs (dimensionnalit\'e). Plus rarement consid\'er\'ees sont la distribution temporelle de l'ensemble des requ\^etes et la 
distribution spatiale de l'ensemble des donn\'ees (ou plut\^ot de l'ensemble image de $\mathcal{O}$ par $g$). Bri\`evement :

\paragraph {\textbf{~~~Co\^ut des recherches}} 
Nous \'evaluons les co\^uts de recherche par requ\^ete selon les crit\`eres suivants : 
\begin{itemize}
\item Le taux moyen de machines sollicit\'ees sur le nombre total de machines participant \`a l'index ;
\item Le nombre moyen de messages n\'ecessit\'es. 
\end{itemize}

\paragraph {\textbf{~~~Co\^ut de la maintenance}}
 Nous \'evaluons les co\^uts de maintenance selon les crit\`eres suivants : 
\begin{itemize}
\item Le nombre moyen de voisins par machine (mesure de la taille de l\'etat que doit maintenir chaque machine pour que soit assur\'e le bon fonctionnement de l'index) ;
\item Le nombre moyen de messages par op\'eration de maintenance : arriv\'ee d'une machine, d\'epart d'une machine, ajout d'une donn\'ee, suppression d'une donn\'ee. 
\end{itemize}

Les r\'esultats attendus sont les suivants : 

Le reste de ce chapitre est organis\'e de la fa\c con suivante. Tout d'abord la section ??? passe en revue le dispositif exp\'erimental, en incluant la description de 
l'environnement mat\'eriel et les . Puis les deux sections suivantes d\'etaillent les campagnes de test pour l'\'evaluation des performances du plan de requ\^etes (section ???) 
et les performances du plan de contr\^ole (section ???), en concluant chacune par une discussion des r\'esultats obtenus.  

Il est \`a noter que l'impl\'ementation dont il est question dans ce chapitre est une preuve de concept (proof of concept) : elle a pour objet de d\'emontrer la faisabilit\'e 
de la mise en oeuvre de notre mod\`ele, tel que d\'ecrit dans le chapitre ???. Il est bien clair qu'elle comporte des limitations, notamment en termes d'optimalit\'e ou de passage 
\'e l'\'echelle au-del\'e de quelques centaines de pairs. Il faut donc y voir davantage une ``preuve par construction`` (proof by construction) des propri\'et\'es de notre mod\`ele 
d'index distribu\'e. A des fins de reproductibilit\'e des exp\'eriences pr\'esent\'ees, lee code source complet est disponible en ligne : ???. 

\section{Dispositif exp\'erimental}

% L'environnement mat\'eriel
Les mesures de performance ont \'et\'e r\'ealis\'ees en utilisant un cluster de vingt cinq noeuds. Les machines sont \'equip\'ees de 
processeurs Bi-Xeon hyperthread\'es (soient deux processeurs physiques et deux proccesseurs logiques en hyperthread) \`a 2.80GHz et 3.40GHz. 
Elles sont reli\'ees par un r\'eseau local d\'edi\'e avec un switch HP gigabit 48 ports. La m\'emoire disponible par machine est de 2041272 kB (DDR2 400 MHz (2.5 ns) 2x1Go). 
Le syst\`eme d'exploitation est un noyau linux 2.6.28.6. Toutes les machines tournent avec une Mandriva 2009.0 x86_64 et Python 2.6.1. 
Chaque noeud du cluster h\'eberge plusieurs pairs de l'overlay. 

Les param\`etres de l'exp\'erience sont r\'esum\'es dans le tableau ???. Les param\`etres non pris en compte : le churn des pairs le taux de panne, ...

% Les donn\'ees en entr\'ee
-G\'en\'eration de fichiers de donn\'ees synth\'tiques, distributions
-La g\'en\'eration de requ\^etes, le nombre d'it\'eration pour chaque f(x), la fr\'equence, la s\'electivit\'e pour les range

\section{Evaluation des performances des recherche}
\subsection{Discussion}
\section{Evaluation des performances de maintenance}
\subsection{Discussion}





